題目:
給一句英文(全小寫),寫一個方法(函式),把每個單字第一個字母都大寫後回傳。
這題滿常遇見,在寫程式的時候也會用到。
此文同時發佈於好讀版
Example:
input1
capitalize('good morning my friend.')
output1
'Good Morning My Friend'
input2
capitalize('hi there, i am tom.')
output2
'Hi There, I Am Tom.'
第一個字大寫,其他用迴圈跑,若前面有空格則用 toUpperCase()
,
若沒有則繼續下去。
function capitalize(str) {
let result = str[0].toUpperCase();
for (let i = 1; i < str.length; i++) {
if (str[i - 1] === ' ') {
result += str[i].toUpperCase();
} else {
result += str[i];
}
}
return result;
}
public class MyCapitalize {
private static String capitalize(String str) {
String result = "";
result += Character.toString(str.charAt(0)).toUpperCase();
for (int i = 1; i < str.length(); i++) {
if (Character.toString(str.charAt(i - 1)).equals(" ")) {
result += Character.toString(str.charAt(i)).toUpperCase();
} else {
result += Character.toString(str.charAt(i));
}
}
return result;
}
public static void main(String[] args) {
capitalize("wang anmnsdff asdf asdf ");
}
此文同時發佈於好讀版
如過是以空白為判斷依據,也可以先針對空白做 split
這樣還可以降低迴圈跑的次數,不用每個字元都跑
const result = content
.split(" ")
.map((text) => text.charAt(0).toUpperCase() + text.slice(1))
.join(" ");